package com.sakiko.function.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * projectName: com.sakiko.function.controller
 *
 * @author: Yang
 * description:
 * time: 2025/8/8 20:49
 */
@RestController
@RequestMapping("function")
public class FunctionController {

    @Autowired
    ChatModel chatModel;

    @GetMapping(value = "call1",produces = MediaType.APPLICATION_JSON_VALUE)
    public String function1(@RequestParam("UserMsg") String userMessage) {
        return ChatClient.builder(chatModel)
                .build()
                .prompt()
                .system("""
                        你是算数计算器的代理，能够支持加法运算、乘法运算等操作，其余功能将在后续版本中添加
                        如果用户的问题不支持，请告知详情，在提供加法运算、乘法运算等操作之前，必须从用户处获取如下信息: 两个数据，运算类型
                        请调用自定义函数执行加法运算、乘法运算，根据用户提问语言，进行无障碍沟通！！！
                        """)
                .user(userMessage)
                .functions("addOperation", "mulOperation")
                .call()
                .content();
    }
}
